package com.rds.benchmark.operator;

import redis.clients.jedis.Jedis;

import java.io.IOException;

/**
 * 进行测试操作
 */
public interface TypeOperator {

    /**
     * 初始化操作，赋值connector; 生成所需的测试数据
     * @param conn
     * @param key
     * @param idx thread ID (thread name is integer number)
     */
    void init(Object conn, String key, int idx,String mode);

//    int getTimes();

    /**
     * 测试前的清理工作。
     * @return 返回清理的数据数量，如果没有数据被清理返回 0
     */
    Long clear();

    /**
     * 进行测试操作
     * @throws IOException
     */
    void operate() throws IOException;

    /**
     * 结束计数，times设置 -1
     * @return -1
     */
    int endTimes();

    /**
     * 重置计数，times设置 0, 返回重置之前的值
     * @return 0
     */
    int resetTimes();


}
